<?php defined('TSTP_PACKAGE') or die('forbidden');


/**
* MLT Web Engine
* http://www.molotsoft.ru
*
* @package MLT_WE
* @subpackage Test_Types
* @author Ivan Chistyakov <ivan@molotsoft.ru>
* @version $Id: datetime.tstp.php 236 2009-05-23 05:01:57Z molotsoft@gmail.com $
* @link $HeadURL: http://test-types.googlecode.com/svn/tags/latest1/types/datetime.tstp.php $
*/


function tstp_year($var) {
	return is_wholenum($var) && in_range(0, (int)$var, 9999); // lucky func
}


function tstp_month($var) {
	return is_wholenum($var) && in_range(1, (int)$var, 12); // lucky func
}

function tstp_mon($var) { return tstp_month($var); }


function tstp_day($var) {
	return is_wholenum($var) && in_range(1, (int)$var, 31); // lucky func
}


function tstp_hour($var) {
	return is_wholenum($var) && in_range(0, (int)$var, 23); // lucky func
}


function tstp_minute($var) {
	return is_wholenum($var) && in_range(0, (int)$var, 59); // lucky func
}

function tstp_min($var) { return tstp_minute($var); }


function tstp_second($var) {
	return is_wholenum($var) && in_range(0, (int)$var, 59); // lucky func
}

function tstp_sec($var) { return tstp_second($var); }


define('TSTP_DATE_ISO_PATTERN', '~^(\d{4})-(\d{2})-(\d{2})$~');

function tstp_date($var) {
	return (bool)preg_match(TSTP_DATE_ISO_PATTERN, $var, $match) ? (tstp_year($match[1]) && tstp_month($match[2]) && tstp_day($match[3]) && checkdate($match[2], $match[3], $match[1])) : FALSE;
}


define('TSTP_TIME_ISO_PATTERN', '~^(\d{2})\:(\d{2})\:(\d{2})$~');

function tstp_time($var) {
	return (bool)preg_match(TSTP_TIME_ISO_PATTERN, $var, $match) ? (tstp_hour($match[1]) && tstp_minute($match[2]) && tstp_second($match[3])) : FALSE;
}


define('TSTP_DATETIME_ISO_PATTERN', '~^((\d{4})-(\d{2})-(\d{2})) ((\d{2})\:(\d{2})\:(\d{2}))$~');

function tstp_datetime($var) {
	return (bool)preg_match(TSTP_DATETIME_ISO_PATTERN, $var, $match) ? (tstp_date($match[1]) && tstp_time($match[5])) : FALSE;
}


?>